#include "board.h"

rt_uint16_t CrcCal(rt_uint8_t *data,rt_uint8_t num)//八位数组，个数
{
 rt_uint8_t i,j,con1,con2;
rt_uint16_t CrcR=0xffff, con3=0x00;
for(i=0;i<num;i++)
{
	//把第一个8位二进制数据（既通讯信息帧的第一个字节）与16位的CRC寄存器的低
	//8位相异或，把结果放于CRC寄存器，高八位数据不变；
	con1=CrcR&0xff;
	con3=CrcR&0xff00;
	CrcR=con3+data[i]^con1;
	//把CRC寄存器的内容右移一位（朝低位）用0填补最高位，并检查右移后的移出位；
	for(j=0;j<8;j++)
	{
		con2=CrcR&0x0001;
		CrcR=CrcR>>1;
		if(con2==1)
			CrcR=CrcR^0xA001;
	}
}
con1=CrcR>>8;//高字节
con2=CrcR&0xff;//低字节
CrcR=con2;
CrcR=(CrcR<<8)+con1;
return CrcR;
}


